Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 vector-feature-night-mode-enabled skin-theme-clientpref-os vector-sticky-header-enabled" lang="fr" dir="ltr"><head>
<meta charset="UTF-8">
<title>Programmation informatique</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://fr.wikipedia.org/wiki/Programmation_informatique"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Programmation_informatique rootpage-Programmation_informatique skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Programmation informatique</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="fr" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="fr" dir="ltr">

<p>La <b>programmation informatique</b> désigne l’ensemble des activités liées à la conception, l’écriture, le test et la maintenance de programmes informatiques à l’aide de langages de programmation. Compétence centrale de l’ingénierie contemporaine, elle intervient dans le développement de logiciels, d’applications, de systèmes d’exploitation et de dispositifs numériques au cœur de tous les secteurs de la société.
</p><p>L'écriture d'un programme se fait dans un <a href="Langage_de_programmation" title="Langage de programmation">langage de programmation</a>. Un logiciel est un ensemble de programmes (qui peuvent être écrits dans des langages de programmation différents) destiné à la réalisation de certaines tâches par un (ou plusieurs) utilisateurs du logiciel.
</p><p>La programmation représente donc ici la rédaction du <a href="Code_source" title="Code source">code source</a> d'un logiciel. On utilise plutôt le terme <a href="D%C3%A9veloppement_de_logiciel" title="Développement de logiciel">développement</a> pour dénoter l'ensemble des activités liées à la création d'un logiciel et des programmes qui le composent. Cela inclut la spécification du logiciel, sa conception, puis son implémentation proprement dite au sens de l'écriture des programmes dans un langage de programmation bien défini, ainsi que la vérification de sa correction, etc.
</p><p>Longtemps perçue comme un simple instrument technique, la programmation est désormais reconnue comme une pratique culturellement et socialement signifiante. Elle façonne nos usages numériques, nos modes de communication et jusqu’à nos structures sociales et économiques. Des chercheurs comme Lev Manovich<sup id="cite_ref-Manovich_1-0" class="reference"><a href="#cite_note-Manovich-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> ou Shoshana Zuboff<sup id="cite_ref-Zuboff_2-0" class="reference"><a href="#cite_note-Zuboff-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> ont mis en lumière le rôle structurant du logiciel dans notre culture numérique contemporaine et les rapports de pouvoir qui en émergent.
</p><p>La programmation n’est pas neutre&nbsp;: elle implique des choix techniques et éthiques pouvant renforcer ou atténuer des biais algorithmiques, comme l’ont montré Joy Buolamwini et Timnit Gebru dans l’étude Gender Shades<sup id="cite_ref-Gender_Shades_3-0" class="reference"><a href="#cite_note-Gender_Shades-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>. Elle est aussi au cœur des débats sur l’inclusion dans les métiers du numérique, documentés notamment par Mar Hicks<sup id="cite_ref-Mar_4-0" class="reference"><a href="#cite_note-Mar-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> ou Janet Abbate<sup id="cite_ref-Janet_5-0" class="reference"><a href="#cite_note-Janet-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>.
</p><p>Enfin, elle s’inscrit dans des dynamiques sociales vivantes&nbsp;: communautés open source, plateformes coopératives comme GitHub, ou initiatives éducatives visant à démocratiser l’apprentissage du code. L’anthropologue Gabriella Coleman<sup id="cite_ref-Coleman_6-0" class="reference"><a href="#cite_note-Coleman-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> y voit une éthique du partage et de la liberté façonnée par les développeurs eux-mêmes.
</p>

<div class="mw-heading mw-heading2"><h2 id="Histoire">Histoire</h2></div>

<p>La première machine programmable (c’est-à-dire machine dont les possibilités changent quand on modifie son programme) est probablement le <a href="M%C3%A9tier_%C3%A0_tisser" title="Métier à tisser">métier à tisser</a> de <a href="Joseph_Marie_Jacquard" class="mw-redirect" title="Joseph Marie Jacquard">Jacquard</a>, qui a été réalisé en <a href="1801" title="1801">1801</a>. La machine utilisait une suite de cartons perforés. Les trous indiquaient le motif que le métier suivait pour réaliser un <a href="Tissage" title="Tissage">tissage</a>&nbsp;; avec des cartes différentes le métier produisait des tissages différents<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>. Cette innovation a été ensuite améliorée par <a href="Herman_Hollerith" title="Herman Hollerith">Herman Hollerith</a> d'<a href="International_Business_Machines_Corporation" class="mw-redirect" title="International Business Machines Corporation">IBM</a> pour le développement de la fameuse <a href="Carte_perfor%C3%A9e" title="Carte perforée">carte perforée</a> d'<a href="IBM" title="IBM">IBM</a><sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>.
</p><p>En 1937, la publication de l'article fondateur de la <a href="Informatique" title="Informatique">science informatique</a> <i>On Computable Numbers with an Application to the Entscheidungsproblem</i><sup id="cite_ref-on_computable_numbers_9-0" class="reference"><a href="#cite_note-on_computable_numbers-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> par <a href="Alan_Turing" title="Alan Turing">Alan Turing</a> allait donner le coup d'envoi à la création de l'ordinateur programmable. Il y présente sa <a href="Machine_de_Turing" title="Machine de Turing">machine de Turing</a>, le premier calculateur universel programmable, et invente les concepts et les termes de programmation et de <a href="Programme_informatique" title="Programme informatique">programme</a>.
</p><p>Les premiers <a href="Programme_informatique" title="Programme informatique">programmes</a> d'<a href="Ordinateur" title="Ordinateur">ordinateur</a> étaient réalisés avec un <a href="Fer_%C3%A0_souder" title="Fer à souder">fer à souder</a> et un grand nombre de <a href="Tube_%C3%A9lectronique" title="Tube électronique">tubes à vide</a> (plus tard, des <a href="Transistor" title="Transistor">transistors</a>). Les programmes devenant plus complexes, cela est devenu presque impossible, parce qu'une seule <a href="Bug_(informatique)" title="Bug (informatique)">erreur</a> rendait le programme entier inutilisable. Avec les progrès des <a href="Stockage_d'information" title="Stockage d'information">supports de données</a>, il devint possible de charger le programme à partir de <a href="Carte_perfor%C3%A9e" title="Carte perforée">cartes perforées</a>, contenant la liste des <a href="Instruction_informatique" title="Instruction informatique">instructions</a> en <a href="Code_binaire" title="Code binaire">code binaire</a> spécifique à un type d'ordinateur particulier. La <a href="FLOPS" title="FLOPS">puissance des ordinateurs</a> augmentant, on les utilisa pour faire les programmes, les <a href="D%C3%A9veloppeur" title="Développeur">programmeurs</a> préférant naturellement rédiger du texte plutôt que des suites de 0 et de 1, à charge pour l'ordinateur d'en faire la traduction lui-même.
</p><p>Les origines de la programmation informatique remontent bien avant l’ère contemporaine des algorithmes. Le premier algorithme qui fut écrit pour une machine a été écrit par Ada Lovelace en 1843 pour la machine analytique de <a href="Charles_Babbage" title="Charles Babbage">Charles Babbage</a>. Elle est aujourd’hui considérée comme la première programmeuse de l’histoire.
Dans le <abbr class="abbr" title="Vingtième">XX<sup>e</sup></abbr> siècle, au cours de la <a href="Seconde_Guerre_mondiale" title="Seconde Guerre mondiale">Seconde Guerre mondiale</a>, la programmation prend une forme plus concrète et appliquée. Un des meilleurs exemples est celui des programmeuses de l'ENIAC, un groupe composé de six femmes qui furent chargées de la programmation du premier ordinateur électronique à usage général. Alors que leur rôle a été longtemps négligé, des études telles que celles de Janet Abbate<sup id="cite_ref-Janet_5-1" class="reference"><a href="#cite_note-Janet-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> ou de Mar Hicks<sup id="cite_ref-Mar_4-1" class="reference"><a href="#cite_note-Mar-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> ont permis de redécouvrir le rôle moteur joué par les femmes dans les origines de l'informatique.
Jusque dans les années 1960, la programmation était généralement considérée comme une activité administrative ou secondaire, dominée par les femmes. À mesure que la programmation gagnait en prestige, les femmes en ont été progressivement écartées. Mar Hicks<sup id="cite_ref-Mar_4-2" class="reference"><a href="#cite_note-Mar-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> montre comment, au Royaume-Uni, la profession a été délibérément masculinisée, écartant les femmes au profit d'une vision technocratique et élitiste de l'informatique.
Les années 1970 et 1980 ont vu l'émergence des premiers langages structurés (tels que C ou Pascal) et de paradigmes de programmation tels que la programmation orientée objet. Cette période marque aussi l’essor des communs numériques, avec le début du mouvement open source, qui deviendra central dans les années 1990. Le travail de Christopher Kelty<sup id="cite_ref-Kelty_10-0" class="reference"><a href="#cite_note-Kelty-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> et Gabriella Coleman<sup id="cite_ref-Coleman_6-1" class="reference"><a href="#cite_note-Coleman-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> met en lumière l'importance socioculturelle des communautés de développeurs dans cette période de transition.
</p><p>Avec le temps, de nouveaux <a href="Langage_de_programmation" title="Langage de programmation">langages de programmation</a> sont apparus, faisant de plus en plus abstraction du <a href="Mat%C3%A9riel_informatique" title="Matériel informatique">matériel</a> sur lequel devraient tourner les <a href="Programme_informatique" title="Programme informatique">programmes</a>. Ceci apporte plusieurs facteurs de gain&nbsp;: ces langages sont plus faciles à apprendre, un <a href="D%C3%A9veloppeur" title="Développeur">programmeur</a> peut produire du <a href="Code_source" title="Code source">code</a> plus rapidement, et les programmes produits peuvent tourner sur différents types de <a href="Ordinateur" title="Ordinateur">machines</a>.
</p><p>Enfin, à partir des années 2010, les réflexions éthiques sur les algorithmes et l'intelligence artificielle sont devenues centrales. Des chercheuses comme Joy Buolamwini et Timnit Gebru ont démontré, dans l'étude Gender Shades<sup id="cite_ref-Gender_Shades_3-1" class="reference"><a href="#cite_note-Gender_Shades-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>, que certains systèmes d'IA présentaient des biais importants envers les femmes et les personnes racisées. Cette conscience a représenté un nouveau repère dans l'histoire de la programmation&nbsp;: celui de la responsabilisation des codeurs et de la prise en compte de l'impact social de leurs œuvres.
</p>
<div class="mw-heading mw-heading2"><h2 id="Différents_langages_de_programmation"><span id="Diff.C3.A9rents_langages_de_programmation"></span>Différents langages de programmation</h2></div>
<ol><li><a href="JavaScript" title="JavaScript">JavaScript</a></li>
<li><a href="PHP" title="PHP">PHP</a></li>
<li><a href="Ruby" title="Ruby">Ruby</a></li>
<li><a href="Java_(langage)" title="Java (langage)">Java</a></li>
<li><a href="Swift_(langage_de_script_parall%C3%A8le)" title="Swift (langage de script parallèle)">Swift</a></li>
<li><a href="C_sharp" class="mw-redirect" title="C sharp">C#</a>, <a href="C_(langage)" title="C (langage)">C</a> ou <a href="C%2B%2B" title="C++">C++</a></li>
<li><a href="Python_(langage)" title="Python (langage)">Python</a></li>
<li><a href="Julia_(langage)" title="Julia (langage)">Julia</a></li>
<li><a href="Scala_(langage)" title="Scala (langage)">Scala</a></li>
<li><a href="R_(langage)" title="R (langage)">R</a></li></ol>
<div class="mw-heading mw-heading2"><h2 id="Exemple_de_programme">Exemple de programme</h2></div>
<p>L'immense majorité des programmes qui s'exécutent sur nos ordinateurs, téléphones et autres outils électroniques sont écrits dans des langages de programmation dits impératifs&nbsp;: les lignes du programme sont exécutées les unes après les autres. Chaque ligne du programme effectue soit une opération simple, soit exécute une fonction qui est elle-même une suite d'opérations simples.
</p><p>Le programme «&nbsp;<i><a href="Hello_World" class="mw-redirect" title="Hello World">Hello World</a>!</i>&nbsp;» est par tradition le premier programme écrit par tout programmeur, censé illustrer la syntaxe du langage de programmation. Le programme a pour unique fonction d'afficher le texte "Hello World!" dans la <a href="Console_syst%C3%A8me" title="Console système">console</a> ou dans une fenêtre de l'<a href="Interface_graphique" title="Interface graphique">interface graphique</a>.
</p><p>Voici une version d'un programme «&nbsp;<i>Hello World!</i>&nbsp;»:
</p>

<p>Le programme suivant écrit en langage simplifié et avec des commentaires, demande simplement à l'utilisateur d'entrer au clavier deux nombres entiers, et affiche leur quotient.
</p>
<div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// fonction 'main'&nbsp;: c'est toujours ici qu'un programme commence</span>
<span class="w"> </span><span class="c1">// 'int' signifie integer&nbsp;: nombre entier en anglais</span>
<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">A</span><span class="p">,</span><span class="w"> </span><span class="n">B</span><span class="p">;</span><span class="w"> </span><span class="c1">// on déclare deux variables A et B qui sont des nombres entiers</span>
<span class="w"> </span><span class="n">WriteLine</span><span class="p">(</span><span class="s">"entrez deux entiers&nbsp;: "</span><span class="p">);</span><span class="w"> </span><span class="c1">// 'WriteLine' permet d'écrire à l'écran</span>
<span class="w"> </span><span class="n">A</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ReadIntFromKeyboard</span><span class="p">();</span><span class="w"> </span><span class="c1">// on attend que l'utilisateur tape un entier au clavier,</span>
<span class="w"> </span><span class="c1">// et on l'enregistre dans A</span>
<span class="w"> </span><span class="n">B</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ReadIntFromKeyboard</span><span class="p">();</span><span class="w"> </span><span class="c1">// puis on fait la même chose pour B</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">B</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// si B est égal à 0</span>
<span class="w"> </span><span class="n">WriteLine</span><span class="p">(</span><span class="s">"erreur&nbsp;: division par zéro"</span><span class="p">);</span>
<span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// sinon</span>
<span class="w"> </span><span class="kt">float</span><span class="w"> </span><span class="n">C</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">CalculerDivision</span><span class="p">(</span><span class="n">A</span><span class="p">,</span><span class="n">B</span><span class="p">);</span><span class="w"> </span><span class="c1">// on exécute la fonction 'CalculerDivision'</span>
<span class="w"> </span><span class="c1">// que l'on a programmée ci-dessous,</span>
<span class="w"> </span><span class="c1">// et on enregistre le résultat dans C qui est un 'float'&nbsp;: un nombre à virgule</span>
<span class="w"> </span><span class="n">WriteLine</span><span class="p">(</span><span class="s">"le résultat est&nbsp;: "</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">C</span><span class="p">);</span><span class="w"> </span><span class="c1">// on affiche C</span>
<span class="w"> </span><span class="p">}</span>
<span class="p">}</span>
<span class="kt">float</span><span class="w"> </span><span class="nf">CalculerDivision</span><span class="p">(</span><span class="kt">float</span><span class="w"> </span><span class="n">U</span><span class="p">,</span><span class="w"> </span><span class="kt">float</span><span class="w"> </span><span class="n">V</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// U et V sont les paramètres de notre fonction 'CalculerDivision'&nbsp;: ce sont des nombres à virgules (float).</span>
<span class="w"> </span><span class="c1">// et celle-ci renvoie un 'float'&nbsp;: un nombre à virgule flottante</span>
<span class="w"> </span><span class="c1">// dans la fonction 'main', A et B étaient des nombres entiers,</span>
<span class="w"> </span><span class="c1">// U et V sont des copies des valeurs de A et B,</span>
<span class="w"> </span><span class="c1">// et qui ont été converties en nombres à virgule (22 deviendrait simplement 22.0000000)</span>
<span class="w"> </span><span class="kt">float</span><span class="w"> </span><span class="n">Resultat</span><span class="p">;</span>
<span class="w"> </span><span class="n">Resultat</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">U</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="n">V</span><span class="p">;</span><span class="w"> </span><span class="c1">// on effectue la division</span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">Resultat</span><span class="p">;</span><span class="w"> </span><span class="c1">/// on renvoie le résultat</span>
<span class="p">}</span>
</pre></div>
<p>Dans ce programme, les principales fonctionnalités de la programmation impérative sont utilisées&nbsp;: des variables de type <a href="Entier_naturel" title="Entier naturel">nombre entier</a>, <a href="Virgule_flottante" title="Virgule flottante">nombre à virgule</a>, <a href="Cha%C3%AEne_de_caract%C3%A8res" title="Chaîne de caractères">chaîne de caractères</a>, fonction calculant un résultat à partir de paramètres, fonction effectuant une tâche telle qu'afficher un message à l'écran, instruction <code>if</code> permettant d'exécuter un code ou un autre en fonction de la valeur de telle ou telle variable.
</p><p>Dans un programme informatique typique, on trouvera suivant les langages des boucles <code>while</code> ou <code>for</code> qui permettent d'exécuter un morceau de code en boucle ou simplement un certain nombre de fois, des <code>new</code> pour l'allocation dynamique de données (par exemple des tableaux), et très souvent des éléments de <a href="Programmation_orient%C3%A9e_objet" title="Programmation orientée objet">programmation objet</a> permettant de structurer différemment le code et de créer des types de données personnalisés, ou encore des exceptions pour gérer certains cas d'erreurs plus facilement.
</p><p>On remarque que pour effectuer une tâche très simple, le code informatique peut être très laborieux, et encore ici on ne traite pas les erreurs (si l'utilisateur tape un mot au lieu d'un nombre), et l'affichage est minimaliste. C'est pourquoi les langages de programmation n'ont jamais cessé d'évoluer, dans le but d'aider le programmeur qui souhaite réaliser des programmes rapides à s'exécuter, sans dysfonctionnements, et surtout simples à écrire, du moins le plus possible.
</p>
<div class="mw-heading mw-heading2"><h2 id="Développement_Logiciel"><span id="D.C3.A9veloppement_Logiciel"></span>Développement Logiciel</h2></div>
<p>Il est aussi focalisé sur le rôle des communautés en ligne (Stack Overflow, <a href="Reddit" title="Reddit">Reddit</a>, forums d'utilisateurs spécialisés). Elles favorisent l’entraide, la transmission du savoir et la construction d’une culture professionnelle partagée. Selon Gabriella Coleman<sup id="cite_ref-Coleman_6-2" class="reference"><a href="#cite_note-Coleman-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>, ces communautés bâtissent une éthique propre aux développeurs, centrée sur l'autonomie, la transparence et la création libre.
Le développement logiciel est également influencé par des enjeux sociaux et culturels. Les pratiques de développement sont souvent le reflet de relations de pouvoir, de normes implicites ou d'exclusions&nbsp;: par exemple, la sous-représentation des femmes et des minorités dans les équipes de développement est un problème structurel, attesté entre autres par Mar Hicks<sup id="cite_ref-Mar_4-3" class="reference"><a href="#cite_note-Mar-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>. Des initiatives telles que les programmes de diversité dans la tech ou les projets d'inclusion open source cherchent à diminuer ces écarts.
</p>
<div class="mw-heading mw-heading2"><h2 id="Aspects_sociaux_et_culturels">Aspects sociaux et culturels</h2></div>
<p>Bien que souvent perçue comme une activité purement technique, la programmation informatique s’inscrit dans des dynamiques sociales, culturelles, économiques et politiques complexes. Elle influence la société tout autant qu’elle en est le produit. Plusieurs courants en sciences humaines et sociales, tels que les sciences and technology studies (STS), les humanités numériques ou la sociologie de l’informatique, permettent de mieux comprendre ces dimensions.
</p><p>1. Évolution sociale du métier et inclusion
Historiquement, la programmation a tout d'abord été un travail féminisé, avant d'être à la majorité masculine à partir du moment où son prestige est devenu important. Mar Hicks<sup id="cite_ref-Mar_4-4" class="reference"><a href="#cite_note-Mar-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>, décrit la manière selon laquelle les femmes ont lentement été effacées de leur carrière informatique au Royaume-Uni. Janet Abbate<sup id="cite_ref-Janet_5-2" class="reference"><a href="#cite_note-Janet-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>, trace également le processus dans l'émergence du rôle des femmes dans l'avènement des premiers programmes aux États-Unis.
</p><p>2. Biais éthiques et algorithmiques
Les logiciels ne sont pas neutres&nbsp;: décisions prises lors de leur conception peuvent entraîner des formes de discrimination. Quelques études, comme Gender Shades<sup id="cite_ref-Gender_Shades_3-2" class="reference"><a href="#cite_note-Gender_Shades-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>, ont démontré que les systèmes faciaux de reconnaissance étaient bien moins précis sur les femmes et les personnes racisées. Cathy O'Neil<sup id="cite_ref-Cathy_11-0" class="reference"><a href="#cite_note-Cathy-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup>, met en lumière qu'ils ont la capacité d'exacerber les inégalités sociales.
</p><p>3. Open source communautés et apprentissage collectif
La programmation est aussi inscrite dans des dynamiques communautaires. Des millions de développeurs partagent des savoirs, collaborent à des projets collectifs et réduisent des standards sur des plateformes comme GitHub, Stack Overflow ou Reddit. Gabriella Coleman, dans Coding Freedom (2013)<sup id="cite_ref-Coleman_6-3" class="reference"><a href="#cite_note-Coleman-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>, décrivant ces communautés, les décrit comme des lieux où se forgent des identités, des valeurs éthiques et des formes de résistance à l'économie propriétaire.
</p><p>4. Platform power and digital capitalism
Les grandes entreprises du numérique dominent de plus en plus les activités logicielles. Shoshana Zuboff décrit dans The Age of Surveillance Capitalism<sup id="cite_ref-Zuboff_2-1" class="reference"><a href="#cite_note-Zuboff-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> comment ces acteurs utilisent les informations personnelles dans des espaces logiciels diffusés partout. Nick Srnicek explore dans Platform Capitalism<sup id="cite_ref-Nick_12-0" class="reference"><a href="#cite_note-Nick-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> les régimes économiques basés sur l'exploitation algorithmique.
</p><p>5. Programmation et culture digitale
Le code est également un vecteur culturel employé dans l'art génératif, le design interactif ou la musique numérique. Lev Manovich, dans Software Takes Command<sup id="cite_ref-Manovich_1-1" class="reference"><a href="#cite_note-Manovich-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>, propose une lecture de la culture contemporaine modelée par les logiciels. Casey Reas et Ben Fry, programmeurs de "Processing: A Programming Handbook for Visual Designers and Artists"<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup>, ont démocratisé le code en outil artistique.
</p>
<div class="mw-heading mw-heading2"><h2 id="Phases">Phases</h2></div>

<div class="mw-heading mw-heading3"><h3 id="Conception">Conception</h3></div>

<p>La phase de <a href="Conception_de_logiciel" title="Conception de logiciel">conception</a> définit le but du programme. Si on fait une rapide analyse fonctionnelle d'un programme, on détermine essentiellement les données qu'il va traiter (données d'entrée), la méthode employée (appelée l'<a href="Algorithme" title="Algorithme">algorithme</a>), et le résultat (données de sortie). Les <a href="Entr%C3%A9es-sorties" class="mw-redirect" title="Entrées-sorties">données d'entrée et de sortie</a> peuvent être de nature très diverse. On peut décrire la méthode employée pour accomplir le but d'un programme à l'aide d'un algorithme. La programmation procédurale et fonctionnelle est basée sur l'<a href="Algorithmique" title="Algorithmique">algorithmique</a>. On retrouve en général les mêmes fonctionnalités de base. On peut donc considérer que la programmation est le processus de traduction d'un <a href="Algorithmique" title="Algorithmique">algorithmique</a> en un programme qui exécute cet algorithmique.
Il existe deux méthodes principales pour concevoir un programme. La conception algorithmique consiste à construire le programme autour de l'<a href="Algorithme" title="Algorithme">algorithme</a> qui est censé permettre d'obtenir le bon résultat. La conception procédurale consiste à trouver une suite d'actions à réaliser pour arriver au but. La conception procédurale est la plus utilisée.
Lorsque le but est connu et que la méthode pour arriver au but est claire, on entre dans la conception détaillée. La conception détaillée est la spécification des données d'entrée, du résultat à obtenir, et l'algorithme avec toutes les instructions nécessaires.
</p>
<div class="mw-heading mw-heading4"><h4 id="Programmation_impérative"><span id="Programmation_imp.C3.A9rative"></span>Programmation impérative</h4></div>

<dl><dt>"Si"</dt>
<dd><code><b>Si</b> <i>prédicat</i></code>
<dl><dd><code><b>Alors</b> <i>faire ceci</i></code></dd>
<dd><code><b>Sinon</b> <i>faire cela</i></code></dd></dl></dd></dl>
<dl><dt>"Tant que"</dt>
<dd><code><b>Tant que</b> <i>prédicat</i></code>
<dl><dd><code><i>Faire ...</i></code></dd></dl></dd></dl>
<dl><dt>"Pour"</dt>
<dd><code><b>Pour</b> <i>variable</i> <b>allant de</b> <i>borne inférieure</i> <b>à</b> <i>borne supérieure</i></code>
<dl><dd><code><i>Faire ...</i></code></dd></dl></dd></dl>
<dl><dt>"Pour" (variante)</dt>
<dd><code><b>Pour</b> <i>variable</i> <b>dans</b> <i>conteneur</i></code>
<dl><dd><code><i>faire ...</i></code></dd></dl></dd></dl>
<div class="mw-heading mw-heading3"><h3 id="Implémentation"><span id="Impl.C3.A9mentation"></span>Implémentation</h3></div>

<p>Une fois l'algorithme défini, l'étape suivante est de coder le programme. Le codage dépend de l'architecture sur laquelle va s'exécuter le programme, de <a href="Compromis_temps-m%C3%A9moire" title="Compromis temps-mémoire">compromis temps-mémoire</a>, et d'autres contraintes. Ces contraintes vont déterminer quel langage de programmation utiliser pour «&nbsp;convertir&nbsp;» l'algorithme en code source.
</p>
<div class="mw-heading mw-heading3"><h3 id="Transformation_du_code_source">Transformation du code source</h3></div>
<p>Le code source n'est (presque) jamais utilisable tel quel. Il est généralement écrit dans un langage "de haut niveau", compréhensible pour l'homme, mais pas pour la machine.
</p>
<div class="mw-heading mw-heading4"><h4 id="Compilation">Compilation</h4></div>

<p>Certains langages sont ce qu'on appelle des langages compilés. En toute généralité, la compilation est l'opération qui consiste à transformer un langage source en un langage cible. Dans le cas d'un programme, le <a href="Compilateur" title="Compilateur">compilateur</a> va transformer tout le texte représentant le code source du programme, en code compréhensible pour la machine, appelé <a href="Code_machine" class="mw-redirect" title="Code machine">code machine</a>.
</p><p>Dans le cas de langages dits compilés, ce qui est exécuté est le résultat de la compilation. Une fois effectuée, l'exécutable obtenu peut être utilisé sans le code source.
</p><p>Il faut également noter que le résultat de la compilation n'est pas forcément du code machine correspondant à la machine réelle, mais peut être du code compris par une <a href="Machine_virtuelle" title="Machine virtuelle">machine virtuelle</a> (c'est-à-dire un programme simulant une machine), auquel cas on parlera de <a href="Bytecode" title="Bytecode">bytecode</a>. C'est par exemple le cas en <a href="Java_(langage)" title="Java (langage)">Java</a>. L'avantage est que, de cette façon, un programme peut fonctionner sur n'importe quelle machine réelle, du moment que la machine virtuelle existe pour celle-ci.
</p><p>Dans le cas d'une requête <a href="Structured_Query_Language" title="Structured Query Language">SQL</a>, la requête est compilée en une expression utilisant les opérateurs de l'algèbre relationnelle. C'est cette expression qui est évaluée par le système de gestion de bases de données.
</p>
<div class="mw-heading mw-heading4"><h4 id="Interprétation"><span id="Interpr.C3.A9tation"></span>Interprétation</h4></div>

<p>D'autres langages ne nécessitent pas de phase spéciale de compilation. La méthode employée pour exécuter le programme est alors différente. La phase de compilation est la plupart du temps incluse dans celle d’exécution. On dit de ce programme qu'il interprète le code source. Par exemple, <a href="Python_(langage)" title="Python (langage)">Python</a> ou <a href="Perl_(langage)" title="Perl (langage)">Perl</a> sont des langages interprétés.
</p>
<div class="mw-heading mw-heading4"><h4 id="Avantages,_inconvénients"><span id="Avantages.2C_inconv.C3.A9nients"></span>Avantages, inconvénients</h4></div>
<p>Les avantages généralement retenus pour l'utilisation de langages «&nbsp;compilés&nbsp;», est qu'ils sont plus rapides à l'exécution que des langages interprétés, car l'interprète doit être lancé à chaque exécution du programme, ce qui mobilise systématiquement les ressources.
</p><p>Traditionnellement, les langages interprétés offrent en revanche une certaine portabilité (la capacité à utiliser le code source sur différentes plates-formes), ainsi qu'une facilité pour l'écriture du code. En effet, il n'est pas nécessaire de passer par la phase de compilation pour tester le code source. Il n'est pas non plus nécessaire de disposer d'un autre programme (<i>debugger</i>) afin d’ôter les bugs du programme, c'est l’interpréteur qui permet d'afficher directement le contenu des variables du programme.
</p>
<div class="mw-heading mw-heading4"><h4 id="Appellation_impropre">Appellation impropre</h4></div>
<p>Il faut noter qu'on parle abusivement de langages compilés ou interprétés. En effet, le caractère compilé ou interprété ne dépend pas du langage, qui n'est finalement qu'une grammaire et une certaine sémantique. D'ailleurs, certains langages peuvent être utilisés interprétés ou compilés. Par exemple, il est très courant d'utiliser <a href="Ruby" title="Ruby">Ruby</a> avec un interprète, mais il existe également des compilateurs pour ce langage<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>. On notera toutefois, qu'il peut être important de préciser comment le code source est exécuté. En effet, rares sont les organismes qui proposent à la fois un compilateur et un interpréteur, les résultats du programme peuvent différer à l'exécution, même si la norme du langage est clairement définie.
</p><p>Néanmoins, l'usage qu'on fait des langages est généralement fixé.
</p>
<div class="mw-heading mw-heading3"><h3 id="Test_du_programme">Test du programme</h3></div>

<p>C'est l'une des étapes les plus importantes de la création d'un programme. En principe, tout programmeur se doit de vérifier chaque partie d'un programme, de le tester. Il existe différents types de test. On peut citer en particulier&nbsp;:
</p>
<ul><li><a href="Test_unitaire" title="Test unitaire">Test unitaire</a></li>
<li><a href="Test_d'int%C3%A9gration" title="Test d'intégration">Test d'intégration</a></li>
<li><a href="Test_de_performance" title="Test de performance">Test de performance</a></li></ul>
<p>Il convient de noter qu'il est parfois possible de <a href="V%C3%A9rification_formelle" title="Vérification formelle">vérifier</a> un programme informatique, c'est-à-dire prouver, de manière plus ou moins automatique, qu'il assure certaines propriétés.
</p>
<div class="mw-heading mw-heading2"><h2 id="Pratiques">Pratiques</h2></div>
<ul><li><a href="Algorithmique" title="Algorithmique">Algorithmique</a></li>
<li><a href="Gestion_de_versions" title="Gestion de versions">Gestion de versions</a></li>
<li><a href="Optimisation_de_code" title="Optimisation de code">Optimisation de code</a></li>
<li><a href="Programmation_syst%C3%A8me" title="Programmation système">Programmation système</a></li>
<li><a href="Refactoring" class="mw-redirect" title="Refactoring">Refactoring</a></li>
<li><a href="Test_d'int%C3%A9gration" title="Test d'intégration">Test d'intégration</a></li>
<li><a href="Test_unitaire" title="Test unitaire">Test unitaire</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Paradigmes">Paradigmes</h2></div>
<p>Un paradigme est un <a href="Style_de_programmation" title="Style de programmation">style fondamental de programmation</a>, définissant la manière dont les programmes doivent être formulés.
</p><p>Un paradigme est la façon dont sont traitées les solutions aux problèmes et un style fondamental de programmation, définissant la manière dont les programmes doivent être formulés. Chaque paradigme amène sa philosophie de la programmation&nbsp;; une fois qu'une solution a été imaginée par un programmeur selon un certain paradigme, un langage de programmation qui suit ce paradigme permettra de l'exprimer.
</p>
<div class="mw-heading mw-heading3"><h3 id="Programmation_impérative_2"><span id="Programmation_imp.C3.A9rative_2"></span>Programmation impérative</h3></div>

<p>Le paradigme impératif est le plus répandu, les opérations sont une suite d’instructions exécutées par l'<a href="Ordinateur" title="Ordinateur">ordinateur</a> pour modifier l'état du <a href="Programme_informatique" title="Programme informatique">programme</a>.
</p>
<div class="mw-heading mw-heading4"><h4 id="Programmation_procédurale"><span id="Programmation_proc.C3.A9durale"></span>Programmation procédurale</h4></div>

<p>La programmation procédurale est un sous-ensemble de la programmation impérative. Elle introduit la notion de <i>routine</i> ou <i>fonction</i> qui est une sorte de factorisation de code, chaque <a href="Routine_(informatique)" title="Routine (informatique)">procédure</a> peut être appelée à n’importe quelle étape du <a href="Programme_informatique" title="Programme informatique">programme</a>. Ce paradigme permet aussi de supprimer les instructions <a href="Goto_(informatique)" title="Goto (informatique)">goto</a><sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup><sup class="reference cite_virgule">,</sup><sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup><sup class="reference cite_virgule">,</sup><sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup>
</p><p>Ce paradigme est très répandu, il est présent dans des langages comme le <a href="C_(langage)" title="C (langage)">C</a>, le <a href="Cobol" title="Cobol">COBOL</a> ou le <a href="Fortran" title="Fortran">FORTRAN</a>.
</p>
<div class="mw-heading mw-heading4"><h4 id="Programmation_structurée"><span id="Programmation_structur.C3.A9e"></span>Programmation structurée</h4></div>

<p>Apparue dans les <a href="Ann%C3%A9es_1970" title="Années 1970">années 70</a>, la <a href="Programmation_structur%C3%A9e" title="Programmation structurée">programmation structurée</a> est un sous-ensemble de la programmation impérative. Elle est née avec les travaux de <a href="Niklaus_Wirth" title="Niklaus Wirth">Nicklaus Wirth</a> pour son <a href="Algol_W" title="Algol W">Algol W</a> et l'article fondateur de <a href="Edsger_Dijkstra" title="Edsger Dijkstra">Dijkstra</a> dans <i><a href="Communications_of_the_ACM" title="Communications of the ACM">Communications of the ACM</a></i>, visant à supprimer l’instruction <a href="Goto_(informatique)" title="Goto (informatique)">goto</a>.
</p><p>Tous les langages procéduraux peuvent faire de la programmation structurée, mais certains comme le <a href="Fortran" title="Fortran">FORTRAN</a> s'y prêtent très mal.
</p>
<div class="mw-heading mw-heading3"><h3 id="Programmation_déclarative"><span id="Programmation_d.C3.A9clarative"></span>Programmation déclarative</h3></div>

<p>En programmation déclarative, le <a href="Programme_informatique" title="Programme informatique">programme</a> est indépendant de l’état de la <a href="Ordinateur" title="Ordinateur">machine</a>, il s’affranchit donc de tout <a href="Effet_de_bord_(informatique)" title="Effet de bord (informatique)">effet de bord</a> et un appel à une même <a href="Fonction_informatique" class="mw-redirect" title="Fonction informatique">fonction</a> produira toujours le même résultat.
</p><p>Le programme s’écrit non pas comme une suite d’instruction pour résoudre un problème mais (contrairement à la <a href="Programmation_imp%C3%A9rative" title="Programmation impérative">programmation impérative</a>) comme la solution au problème.
</p>
<div class="mw-heading mw-heading4"><h4 id="Programmation_fonctionnelle">Programmation fonctionnelle</h4></div>

<p>La programmation fonctionnelle se base sur plusieurs principes comme&nbsp;: l’<a href="Objet_immuable" title="Objet immuable">immutabilité</a>, les <a href="Fonction_pure" title="Fonction pure">fonctions pures</a> (qui ne dépendent pas de l’état de la machine) et les <a href="Lambda-calcul" title="Lambda-calcul">lambda-calcul</a>.
</p><p>Aujourd’hui, nombreux sont les <a href="Langage_de_programmation" title="Langage de programmation">langages</a> qui offrent une approche fonctionnelle au programmeur. Certains comme <a href="Lisp_(langage)" class="mw-redirect" title="Lisp (langage)">LISP</a> ou <a href="Scala_(langage)" title="Scala (langage)">Scala</a> sont intrinsèquement fonctionnels. D’autres comme <a href="JavaScript" title="JavaScript">JavaScript</a>, <a href="Java_(langage)" title="Java (langage)">Java</a> ou <a href="PHP" title="PHP">PHP</a> ont ajouté cette possibilité par la suite.
</p>
<div class="mw-heading mw-heading4"><h4 id="Programmation_logique">Programmation logique</h4></div>

<p>La <a href="Programmation_logique" title="Programmation logique">programmation logique</a> consiste à exprimer les problèmes et les algorithmes sous forme de prédicats à l’aide d'une <a href="Base_de_faits" class="mw-redirect" title="Base de faits">base de faits</a>, d'une base de règles et d'un <a href="Moteur_d'inf%C3%A9rence" title="Moteur d'inférence">moteur d'inférence</a>.
</p>
<div class="mw-heading mw-heading3"><h3 id="Programmation_orientée_objet"><span id="Programmation_orient.C3.A9e_objet"></span>Programmation orientée objet</h3></div>

<p>La programmation orientée objet (abrégé POO) consiste en la définition et l'interaction de briques logicielles appelées <a href="Objet_(informatique)" title="Objet (informatique)">objets</a>&nbsp;; ces objets représentent un concept, une idée. Chaque objet contient des <i>attributs</i> et des <a href="M%C3%A9thode_(informatique)" title="Méthode (informatique)"><i>méthodes</i></a> en rapport avec un sujet.
</p>
<div class="mw-heading mw-heading4"><h4 id="Programmation_orientée_prototype"><span id="Programmation_orient.C3.A9e_prototype"></span>Programmation orientée prototype</h4></div>

<p>La <a href="Programmation_orient%C3%A9e_prototype" title="Programmation orientée prototype">programmation orientée prototype</a> est un sous ensemble de la programmation orientée objet. Dans ce paradigme, chaque <a href="Objet_(informatique)" title="Objet (informatique)">objet</a> est créé à partir d’un <a href="Prototype_(patron_de_conception)" title="Prototype (patron de conception)">prototype</a> qui est lui-même un objet. Le prototype a donc une existence physique en <a href="M%C3%A9moire_vive" title="Mémoire vive">mémoire</a> et est mutable contrairement aux classes.
</p><p>Le <a href="JavaScript" title="JavaScript">JavaScript</a>, le <a href="Lua" title="Lua">Lua</a> ou le <a href="Self_(langage)" title="Self (langage)">Self</a> sont des exemples de langages utilisant ce paradigme.
</p>
<div class="mw-heading mw-heading4"><h4 id="Programmation_orientée_classe"><span id="Programmation_orient.C3.A9e_classe"></span>Programmation orientée classe</h4></div>
<p>La programmation orientée classe est basée sur la notion de <i><a href="Classe_(informatique)" title="Classe (informatique)">classes</a></i>. Une classe est statique, c’est la représentation abstraite de l’<a href="Objet_(informatique)" title="Objet (informatique)">objet</a>, c’est à ce niveau que se passe l’<a href="H%C3%A9ritage_(informatique)" title="Héritage (informatique)">héritage</a>. Tout objet est donc l’instance d’une classe.
</p><p>Les langages à classes peuvent être sous forme <a href="Programmation_fonctionnelle" title="Programmation fonctionnelle">fonctionnelle</a> (<a href="Common_Lisp_Object_System" title="Common Lisp Object System">CLOS</a>) comme sous forme <a href="Programmation_imp%C3%A9rative" title="Programmation impérative">impérative</a> (<a href="C%2B%2B" title="C++">C++</a>, <a href="Java_(langage)" title="Java (langage)">Java</a>), voir les deux (<a href="Python_(langage)" title="Python (langage)">Python</a>, <a href="OCaml" title="OCaml">OCaml</a>).
</p>
<div class="mw-heading mw-heading3"><h3 id="Autres_paradigmes">Autres paradigmes</h3></div>
<ul><li><a href="Programmation_concurrente" title="Programmation concurrente">Programmation concurrente</a></li>
<li><a href="Programmation_orient%C3%A9e_aspect" title="Programmation orientée aspect">Programmation orientée aspect</a></li>
<li><a href="Programmation_orient%C3%A9e_composant" title="Programmation orientée composant">Programmation orientée composant</a></li>
<li><a href="Programmation_par_contrat" title="Programmation par contrat">Programmation par contrat</a></li>
<li><a href="Programmation_par_contraintes" title="Programmation par contraintes">Programmation par contraintes</a></li>
<li><a href="Programmation_par_intention" title="Programmation par intention">Programmation par intention</a></li>
<li><a href="Programmation_r%C3%A9active" title="Programmation réactive">Programmation réactive</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Notes_et_références"><span id="Notes_et_r.C3.A9f.C3.A9rences"></span>Notes et références</h2></div>
<div class="references-small decimal" style=""><div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-Manovich-1"><span class="reference-text"><span class="ouvrage" id="Manovich2013"><span class="ouvrage" id="Lev_Manovich2013">Lev Manovich, <cite class="italique">Software Takes Command</cite>, Bloomsbury Academic, <time>2013</time>, 272&nbsp;<abbr class="abbr" title="pages">p.</abbr> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a>&nbsp;<span class="nowrap">9781623566722</span>, <a rel="nofollow" class="external text" href="https://www.bloomsbury.com/us/software-takes-command-9781623567453/">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Software+Takes+Command&amp;rft.pub=Bloomsbury+Academic&amp;rft.aulast=Manovich&amp;rft.aufirst=Lev&amp;rft.date=2013&amp;rft.tpages=272&amp;rft.isbn=9781623566722&amp;rfr_id=info%3Asid%2Ffr.wikipedia.org%3AProgrammation+informatique"></span></span></span>.</span>
</li>
<li id="cite_note-Zuboff-2"><span class="reference-text"><span class="ouvrage" id="Zuboff2019"><span class="ouvrage" id="Shoshana_Zuboff2019">Shoshana Zuboff, <cite class="italique">The Age of Surveillance Capitalism</cite>, PublicAffairs, <time>2019</time>, 704&nbsp;<abbr class="abbr" title="pages">p.</abbr> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a>&nbsp;<span class="nowrap">9781610395700</span>, <a rel="nofollow" class="external text" href="https://www.publicaffairsbooks.com/titles/shoshana-zuboff/the-age-of-surveillance-capitalism/9781610395694/">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=The+Age+of+Surveillance+Capitalism&amp;rft.pub=PublicAffairs&amp;rft.aulast=Zuboff&amp;rft.aufirst=Shoshana&amp;rft.date=2019&amp;rft.tpages=704&amp;rft.isbn=9781610395700&amp;rfr_id=info%3Asid%2Ffr.wikipedia.org%3AProgrammation+informatique"></span></span></span>.</span>
</li>
<li id="cite_note-Gender_Shades-3"><span class="reference-text"><span class="ouvrage" id="BuolamwiniGebru2018"><span class="ouvrage" id="Joy_BuolamwiniTimnit_Gebru2018">Joy Buolamwini et Timnit Gebru, «&nbsp;<cite style="font-style:normal">Gender Shades: Intersectional Accuracy Disparities in Commercial Gender Classification</cite>&nbsp;», <i>Conference on Fairness, Accountability and Transparency</i>,‎ <time>2018</time> <small style="line-height:1em;">(<a rel="nofollow" class="external text" href="https://proceedings.mlr.press/v81/buolamwini18a/buolamwini18a.pdf">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Gender+Shades%3A+Intersectional+Accuracy+Disparities+in+Commercial+Gender+Classification&amp;rft.jtitle=Conference+on+Fairness%2C+Accountability+and+Transparency&amp;rft.aulast=Buolamwini&amp;rft.aufirst=Joy&amp;rft.au=Timnit+Gebru&amp;rft.date=2018&amp;rfr_id=info%3Asid%2Ffr.wikipedia.org%3AProgrammation+informatique"></span></span></span>.</span>
</li>
<li id="cite_note-Mar-4"><span class="reference-text"><span class="ouvrage" id="Hicks2018"><span class="ouvrage" id="Mar_Hicks2018">Mar Hicks, <cite class="italique">Programmed Inequality: How Britain Discarded Women Technologists and Lost Its Edge in Computing</cite>, MIT Press, <time>2018</time>, 352&nbsp;<abbr class="abbr" title="pages">p.</abbr> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a>&nbsp;<span class="nowrap">9780262535182</span>, <a rel="nofollow" class="external text" href="https://mitpress.mit.edu/9780262535182/programmed-inequality/">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Programmed+Inequality%3A+How+Britain+Discarded+Women+Technologists+and+Lost+Its+Edge+in+Computing&amp;rft.pub=MIT+Press&amp;rft.aulast=Hicks&amp;rft.aufirst=Mar&amp;rft.date=2018&amp;rft.tpages=352&amp;rft.isbn=9780262535182&amp;rfr_id=info%3Asid%2Ffr.wikipedia.org%3AProgrammation+informatique"></span></span></span>.</span>
</li>
<li id="cite_note-Janet-5"><span class="reference-text"><span class="ouvrage" id="Abbate2012"><span class="ouvrage" id="Janet_Abbate2012">Janet Abbate, <cite class="italique">Recoding Gender: Women’s Changing Participation in Computing</cite>, MIT Press, <time>2012</time>, 264&nbsp;<abbr class="abbr" title="pages">p.</abbr> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a>&nbsp;<span class="nowrap">9780262018067</span>, <a rel="nofollow" class="external text" href="https://mitpress.mit.edu/9780262534536/recoding-gender/">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Recoding+Gender%3A+Women%E2%80%99s+Changing+Participation+in+Computing&amp;rft.pub=MIT+Press&amp;rft.aulast=Abbate&amp;rft.aufirst=Janet&amp;rft.date=2012&amp;rft.tpages=264&amp;rft.isbn=9780262018067&amp;rfr_id=info%3Asid%2Ffr.wikipedia.org%3AProgrammation+informatique"></span></span></span>.</span>
</li>
<li id="cite_note-Coleman-6"><span class="reference-text"><span class="ouvrage" id="Coleman2013"><span class="ouvrage" id="Gabriella_Coleman2013">Gabriella Coleman, <cite class="italique">Coding Freedom: The Ethics and Aesthetics of Hacking</cite>, Princeton University Press, <time>2013</time>, 268&nbsp;<abbr class="abbr" title="pages">p.</abbr> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a>&nbsp;<span class="nowrap">9780691144610</span>, <a rel="nofollow" class="external text" href="https://gabriellacoleman.org/Coleman-Coding-Freedom.pdf">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Coding+Freedom%3A+The+Ethics+and+Aesthetics+of+Hacking&amp;rft.pub=Princeton+University+Press&amp;rft.aulast=Coleman&amp;rft.aufirst=Gabriella&amp;rft.date=2013&amp;rft.tpages=268&amp;rft.isbn=9780691144610&amp;rfr_id=info%3Asid%2Ffr.wikipedia.org%3AProgrammation+informatique"></span></span></span>.</span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><a href="#cite_ref-7">↑</a> </span><span class="reference-text"><span class="ouvrage">«&nbsp;<a rel="nofollow" class="external text" href="https://www.arts-et-metiers.net/musee/modele-metier-original-de-jacquard"><cite style="font-style:normal;">Modèle&nbsp;: Métier original de Jacquard</cite></a>&nbsp;», sur <span class="italique">Musée des arts et métiers</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2020-12-20" data-sort-value="2020-12-20">20 décembre 2020</time>)</small></span>.</span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><a href="#cite_ref-8">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2012"><abbr class="abbr indicateur-langue" title="Langue : anglais américain">(en-US)</abbr> «&nbsp;<a rel="nofollow" class="external text" href="http://www-03.ibm.com/ibm/history/ibm100/us/en/icons/punchcard/"><cite style="font-style:normal;" lang="en-us">IBM100 - The IBM Punched Card</cite></a>&nbsp;», sur <span class="italique">www-03.ibm.com</span>, <time class="nowrap" datetime="2012-03-07" data-sort-value="2012-03-07">7 mars 2012</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2020-12-20" data-sort-value="2020-12-20">20 décembre 2020</time>)</small></span>.</span>
</li>
<li id="cite_note-on_computable_numbers-9"><span class="mw-cite-backlink"><a href="#cite_ref-on_computable_numbers_9-0">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Turing1937"><span class="ouvrage" id="Alan_Turing1937"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> Alan Turing, <cite class="italique" lang="en">On Computable Numbers, with an Application to the Entscheidungsproblem&nbsp;: Proceedings of the London Mathematical Society</cite>, London Mathematical Society, <time>1937</time> <small style="line-height:1em;">(<a href="Digital_Object_Identifier" title="Digital Object Identifier">DOI</a>&nbsp;<span class=" noarchive nowrap"><a rel="nofollow" class="external text" href="https://dx.doi.org/10.1112/PLMS/S2-42.1.230">10.1112/PLMS/S2-42.1.230</a></span>, <a rel="nofollow" class="external text" href="https://www.cs.virginia.edu/~robins/Turing_Paper_1936.pdf">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=On+Computable+Numbers%2C+with+an+Application+to+the+Entscheidungsproblem&amp;rft.pub=London+Mathematical+Society&amp;rft.stitle=Proceedings+of+the+London+Mathematical+Society&amp;rft.aulast=Turing&amp;rft.aufirst=Alan&amp;rft.date=1937&amp;rft_id=info%3Adoi%2F10.1112%2FPLMS%2FS2-42.1.230&amp;rfr_id=info%3Asid%2Ffr.wikipedia.org%3AProgrammation+informatique"></span></span></span> et <span class="ouvrage" id="1938">«&nbsp;<cite style="font-style:normal">[<i>idem</i>]&nbsp;: A Correction</cite>&nbsp;», <i>Proc. London Math. Soc.</i>, <abbr class="abbr" title="deuxième">2<sup>e</sup></abbr> série, <abbr class="abbr" title="volume">vol.</abbr>&nbsp;43,‎ <time>1938</time>, <abbr class="abbr" title="pages">p.</abbr>&nbsp;<span class="nowrap">544-546</span> <small style="line-height:1em;">(<a href="Digital_Object_Identifier" title="Digital Object Identifier">DOI</a>&nbsp;<span class=" noarchive nowrap"><a rel="nofollow" class="external text" href="https://dx.doi.org/10.1112/plms/s2-43.6.544">10.1112/plms/s2-43.6.544</a></span>, <a rel="nofollow" class="external text" href="http://www.thocp.net/biographies/papers/turing_oncomputablenumbers_1936.pdf">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=%5B%27%27idem%27%27%5D&amp;rft.jtitle=Proc.+London+Math.+Soc.&amp;rft.stitle=A+Correction&amp;rft.date=1938&amp;rft.volume=43&amp;rft.pages=544-546&amp;rft_id=info%3Adoi%2F10.1112%2Fplms%2Fs2-43.6.544&amp;rfr_id=info%3Asid%2Ffr.wikipedia.org%3AProgrammation+informatique"></span></span>.</span>
</li>
<li id="cite_note-Kelty-10"><span class="mw-cite-backlink"><a href="#cite_ref-Kelty_10-0">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Kelty2008"><span class="ouvrage" id="Christopher_Kelty2008">Christopher Kelty, <cite class="italique">Two Bits: The Cultural Significance of Free Software</cite>, Duke University Press, <time>2008</time>, 400&nbsp;<abbr class="abbr" title="pages">p.</abbr> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a>&nbsp;<span class="nowrap">9780822342649</span>, <a rel="nofollow" class="external text" href="https://www.twobits.net/pub/Kelty-TwoBits.pdf">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Two+Bits%3A+The+Cultural+Significance+of+Free+Software&amp;rft.pub=Duke+University+Press&amp;rft.aulast=Kelty&amp;rft.aufirst=Christopher&amp;rft.date=2008&amp;rft.tpages=400&amp;rft.isbn=9780822342649&amp;rfr_id=info%3Asid%2Ffr.wikipedia.org%3AProgrammation+informatique"></span></span></span>.</span>
</li>
<li id="cite_note-Cathy-11"><span class="mw-cite-backlink"><a href="#cite_ref-Cathy_11-0">↑</a> </span><span class="reference-text"><span class="ouvrage" id="O’Neil2016"><span class="ouvrage" id="Cathy_O’Neil2016">Cathy O’Neil, <cite class="italique">Weapons of Math Destruction: How Big Data Increases Inequality and Threatens Democracy</cite>, Crown Publishing Group, <time>2016</time>, 259&nbsp;<abbr class="abbr" title="pages">p.</abbr> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a>&nbsp;<span class="nowrap">9780553418811</span>, <a rel="nofollow" class="external text" href="https://www.penguinrandomhouse.com/books/241363/weapons-of-math-destruction-by-cathy-oneil/">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Weapons+of+Math+Destruction%3A+How+Big+Data+Increases+Inequality+and+Threatens+Democracy&amp;rft.pub=Crown+Publishing+Group&amp;rft.aulast=O%E2%80%99Neil&amp;rft.aufirst=Cathy&amp;rft.date=2016&amp;rft.tpages=259&amp;rft.isbn=9780553418811&amp;rfr_id=info%3Asid%2Ffr.wikipedia.org%3AProgrammation+informatique"></span></span></span>.</span>
</li>
<li id="cite_note-Nick-12"><span class="mw-cite-backlink"><a href="#cite_ref-Nick_12-0">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Srnicek2017"><span class="ouvrage" id="Nick_Srnicek2017">Nick Srnicek, <cite class="italique">Platform Capitalism</cite>, Polity Press, <time>2017</time>, 120&nbsp;<abbr class="abbr" title="pages">p.</abbr> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a>&nbsp;<span class="nowrap">9781509504879</span>, <a rel="nofollow" class="external text" href="https://www.wiley.com/en-us/Platform+Capitalism-p-9781509504862">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Platform+Capitalism&amp;rft.pub=Polity+Press&amp;rft.aulast=Srnicek&amp;rft.aufirst=Nick&amp;rft.date=2017&amp;rft.tpages=120&amp;rft.isbn=9781509504879&amp;rfr_id=info%3Asid%2Ffr.wikipedia.org%3AProgrammation+informatique"></span></span></span>.</span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><a href="#cite_ref-13">↑</a> </span><span class="reference-text"><span class="ouvrage" id="ReasFry2007"><span class="ouvrage" id="Casey_ReasBen_Fry2007">Casey Reas et Ben Fry, <cite class="italique">Processing: A Programming Handbook for Visual Designers and Artists</cite>, MIT Press, <time>2007</time>, 720&nbsp;<abbr class="abbr" title="pages">p.</abbr> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a>&nbsp;<span class="nowrap">9780262028288</span>, <a rel="nofollow" class="external text" href="https://mitpress.mit.edu/9780262028288/processing/">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Processing%3A+A+Programming+Handbook+for+Visual+Designers+and+Artists&amp;rft.pub=MIT+Press&amp;rft.aulast=Reas&amp;rft.aufirst=Casey&amp;rft.au=Ben+Fry&amp;rft.date=2007&amp;rft.tpages=720&amp;rft.isbn=9780262028288&amp;rfr_id=info%3Asid%2Ffr.wikipedia.org%3AProgrammation+informatique"></span></span></span>.</span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><a href="#cite_ref-14">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://xruby.com/default.aspx"><i>XRuby</i></a>.</span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><a href="#cite_ref-15">↑</a> </span><span class="reference-text">Texte original dans <span class="ouvrage" id="Dijkstra1968"><span class="ouvrage" id="E._W_Dijkstra1968">E. W Dijkstra, «&nbsp;<cite style="font-style:normal">Go To Statement Considered Harmful</cite>&nbsp;», <i>Communications of the ACM</i>, <abbr class="abbr" title="volume">vol.</abbr>&nbsp;11, <abbr class="abbr" title="numéro">n<sup>o</sup></abbr>&nbsp;3,‎ <time class="nowrap" datetime="1968-03" data-sort-value="1968-03">mars 1968</time>, <abbr class="abbr" title="pages">p.</abbr>&nbsp;<span class="nowrap">147-14</span> <small style="line-height:1em;">(<a rel="nofollow" class="external text" href="https://businessdigital.fr/role-de-lintelligence-artificielle/">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Go+To+Statement+Considered+Harmful&amp;rft.jtitle=Communications+of+the+ACM&amp;rft.issue=3&amp;rft.aulast=Dijkstra&amp;rft.aufirst=E.+W&amp;rft.date=1968-03&amp;rft.volume=11&amp;rft.pages=147-14&amp;rft_id=https%3A%2F%2Fbusinessdigital.fr%2Frole-de-lintelligence-artificielle%2F&amp;rfr_id=info%3Asid%2Ffr.wikipedia.org%3AProgrammation+informatique"></span></span></span>.</span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><a href="#cite_ref-16">↑</a> </span><span class="reference-text"><span class="ouvrage">«&nbsp;<a rel="nofollow" class="external text" href="http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD215.PDF"><cite style="font-style:normal;">Go To Statement Considered Harmful</cite></a>&nbsp;» <abbr class="abbr indicateur-format format-pdf" title="Document au format Portable Document Format (PDF) d'Adobe">[PDF]</abbr>, sur <span class="italique">University of Texas</span></span>.</span>
</li>
<li id="cite_note-17"><span class="mw-cite-backlink"><a href="#cite_ref-17">↑</a> </span><span class="reference-text"><span class="ouvrage">«&nbsp;<a rel="nofollow" class="external text" href="https://www.enib.fr/~desmeulles/ipi/procedural.html"><cite style="font-style:normal;">Programmation procédurale</cite></a>&nbsp;», sur <span class="italique">www.enib.fr</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2022-03-18" data-sort-value="2022-03-18">18 mars 2022</time>)</small></span>.</span>
</li>
</ol></div>
</div>
<div class="mw-heading mw-heading2"><h2 id="Voir_aussi">Voir aussi</h2></div>
<style data-mw-deduplicate="TemplateStyles:r194021218">
/* start https://fr.wikipedia.org/ */


.mw-parser-output .autres-projets>.titre{text-align:center;margin:0.2em 0}.mw-parser-output .autres-projets>ul{margin:0;padding:0}.mw-parser-output .autres-projets>ul>li{list-style:none;margin:0.2em 0;text-indent:0;padding-left:24px;min-height:20px;text-align:left;display:block}.mw-parser-output .autres-projets>ul>li>a{font-style:italic}@media(max-width:720px){.mw-parser-output .autres-projets{float:none}}


/* end https://fr.wikipedia.org/ */
</style>
<div class="mw-heading mw-heading3"><h3 id="Articles_connexes">Articles connexes</h3></div>
<ul><li><a href="%C3%89conomie_d'%C3%A9nergie_d'un_programme_informatique" title="Économie d'énergie d'un programme informatique">Économie d'énergie d'un programme informatique</a></li>
<li><a href="Paradigme_(programmation)" title="Paradigme (programmation)">Paradigme (programmation)</a></li>
<li><a href="Style_de_programmation" title="Style de programmation">Style de programmation</a></li>
<li><a href="Chronologie_des_langages_de_programmation" title="Chronologie des langages de programmation">Chronologie des langages de programmation</a></li>
<li><a href="Liste_de_langages_de_programmation" title="Liste de langages de programmation">Liste de langages de programmation</a></li>
<li><a href="Programmation_web" title="Programmation web">Programmation web</a></li>
<li><a href="Forme_de_Backus-Naur" title="Forme de Backus-Naur">Forme de Backus-Naur</a> (BNF), une grammaire de description de langage</li>
<li><a href="Google_Code_Jam" title="Google Code Jam">Google Code Jam</a>, un concours international annuel de programmation très prisé des mordus d'algorithmique et de programmation</li>
<li><a href="Kata_(programmation)" title="Kata (programmation)">Kata (programmation)</a></li>
<li><a href="%C3%89diteur_de_texte" title="Éditeur de texte">Éditeur de texte</a></li>
<li><a href="Code_cr%C3%A9atif" title="Code créatif">Code créatif</a></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Liens_externes">Liens externes</h3></div>
<ul><li><div class="liste-horizontale"><span class="wd_identifiers"><a href="Autorit%C3%A9_(sciences_de_l'information)" title="Autorité (sciences de l'information)">Notices d'autorité</a></span>&nbsp;: <ul><li><span class="nowrap uid noarchive"><a rel="nofollow" class="external text" href="https://catalogue.bnf.fr/ark:/12148/cb11932648m">BnF</a></span> (<span class="nowrap uid noarchive"><a rel="nofollow" class="external text" href="https://data.bnf.fr/ark:/12148/cb11932648m">données</a></span>)</li> <li><span class="nowrap uid noarchive"><a rel="nofollow" class="external text" href="http://id.loc.gov/authorities/sh85107310">LCCN</a></span></li> <li><span class="nowrap uid noarchive"><a rel="nofollow" class="external text" href="http://d-nb.info/gnd/4076370-5">GND</a></span></li> <li><span class="nowrap uid noarchive"><a rel="nofollow" class="external text" href="https://id.ndl.go.jp/auth/ndlna/00569223">Japon</a></span></li> <li><span class="nowrap uid noarchive"><a rel="nofollow" class="external text" href="https://datos.bne.es/resource/XX526555">Espagne</a></span></li> <li><span class="nowrap uid noarchive"><a rel="nofollow" class="external text" href="https://www.nli.org.il/en/authorities/987007538691605171">Israël</a></span></li> <li><span class="nowrap uid noarchive"><a rel="nofollow" class="external text" href="https://aleph.nkp.cz/F/?func=find-c&amp;local_base=aut&amp;ccl_term=ica=ph115891">Tchéquie</a></span></li> <li><span class="nowrap uid noarchive"><a rel="nofollow" class="external text" href="https://kopkatalogs.lv/F/?func=direct&amp;local_base=lnc10&amp;doc_number=000053592">Lettonie</a></span></li> </ul></div></li>
<li><div class="liste-horizontale"><span class="wd_identifiers">Notices dans des dictionnaires ou encyclopédies généralistes</span>&nbsp;: <ul><li><a rel="nofollow" class="external text" href="https://denstoredanske.lex.dk//programmering/"><i>Den Store Danske Encyklopædi</i></a></li> <li><a rel="nofollow" class="external text" href="http://www.sapere.it/enciclopedia/programmazi%C3%B3ne.html"><i>Enciclopedia De Agostini</i></a></li> <li><a rel="nofollow" class="external text" href="https://snl.no/programmering_-_IT"><i>Store norske leksikon</i></a></li> <li><a rel="nofollow" class="external text" href="https://www.universalis.fr/encyclopedie/programmation/"><i>Universalis</i></a></li> </ul></div></li>
<li><span class="liste-horizontale noarchive"><span class="wd_identifiers">Ressource relative à l'audiovisuel</span>&nbsp;: <ul><li><a rel="nofollow" class="external text" href="https://www.france24.com/fr/tag/programmation/">France 24</a></li> </ul></span></li></ul>
<div class="navbox-container" style="clear:both;">


</div>
<ul id="bandeau-portail" class="bandeau-portail"><li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail de la programmation informatique</span> </span></li> </ul></div><!--htdig_noindex--><div><div class="zim-footer">
Cet article est issu de <a class="external text" title="Dernière modification le 2025-06-29" href="https://fr.wikipedia.org/wiki/?title=Programmation_informatique&amp;oldid=226887412">Wikipédia</a>. Sauf mention contraire, le texte est disponible sous <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">Creative Commons Attribution-Share Alike 4.0</a>. Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>